/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.factory.server.scheduler;

import com.factory.server.consumers.ResultQueue;
import com.factory.server.consumers.SchedulerTasksQueue;
import com.factory.server.consumers.TasksQueue;
import com.factory.server.json.Plan;
import com.factory.server.json.SchedulerResult;
import com.factory.server.service.InputQueue;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author milos
 */
public interface SchedulerServiceIface {

    public SchedulerResult getSchedulerResult(String userId);

    public TasksQueue getTasksQueue();

    public ResultQueue getResultQueue();

    public InputQueue getInputQueue();
    
    public void setResultQueue(ResultQueue resultQueue);
    
    public void setInputQueue(InputQueue inputQueue);

    public SchedulerTasksQueue getSchedulerTaskQueue();

    public void registerPlan(Plan plan);

    @Transactional
    public void performPlanTask(Plan plan);
}
